'''
递归函数：函数内部调用自己
遵循：
1. 递归函数必须要有退出条件（出口）
2. 每次递归都要向出口靠近一次
'''

# def test():
#     print('----test----')
#     a()
#
# def a():
#     print('----aaa----')
#     a()
#
# a()

# 1-10 打印数字
def test(i):
    if i == 10:
        print('10')
    else:
        print(i)
        i += 1
        test(i)
test(1)
print('------------------------')

# 1-10 累加和
def test1(i):
    if i == 10:
        return 10
    else:
        return i + test1(i+1)
r = test1(1)
print(r)
print('------------------------')

def test2(a,b):
    print('-->tect enter')
    return a + b

def func():
    c = 10
    return c + test2(5,8)

t = func()
print(t)
print('------------------------')

'''
用递归实现斐波那契数列
'''
def test3(n):
    if n == 1 or n == 2:
        return 1
    else:
        return test3(n-1) + test3(n-2)

r = test3(10)
print(r)





